给定一个二叉树的中序与后序遍历结果,请你根据两个序列构造符合这两个序列的二叉树。
数据范围:二叉树的节点数满足 ,节点上的值满足 ,保证节点的值各不相同
例如输入[2,1,4,3,5],[2,4,5,3,1]时,
根据中序遍历的结果[2,1,4,3,5]和后序遍历的结果[2,4,5,3,1]可构造出二叉树{1,2,3,#,#,4,5},如下图所示:
[1],[1]
{1}
[2,1,4,3,5],[2,4,5,3,1]
{1,2,3,#,#,4,5}
class Solution: def buildTree(self , inorder: List[int], postorder: List[int]) -> TreeNode: # write code here if postorder: ind=inorder.index(postorder[-1]) root=TreeNode(postorder.pop()) root.left=self.buildTree(inorder[:ind],postorder[:ind])#左都同 root.right=self.buildTree(inorder[ind+1:],postorder[ind:]) return root